/*
 * @lc app=leetcode.cn id=414 lang=javascript
 *
 * [414] 第三大的数
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {number}
 */
var thirdMax = function(nums) {
    let max3=new Set( nums.slice(0,3))
    let len=nums.length
    let i=3
    while(i<len){
        let min=Math.min.apply(this,[...max3])
        if(max3.size<3){max3.add(nums[i])}
        if(nums[i]>min&&!max3.has(nums[i])){
            max3.delete(min)
            max3.add(nums[i])
        }
        i++
    }
    if(max3.size<3){return Math.max.apply(this,[...max3])}
    return  Math.min.apply(this,[...max3])
};
// @lc code=end

